import request from "@/utils/request";

/**
 * 获取元产品列表
 * @function
 * @param {Object} data - 请求参数对象
 * @param {string} data.metaName - 元产品的名称
 * @param {number} data.pageNum - 当前页码
 * @param {number} data.pageSize - 每页的条数
 * @returns {Promise<Object>}
 */
export function fetchMetaList(data) {
  return request({
    url: "/meta/pageMeta",
    method: "post",
    data,
  });
}

/**
 * 新建元产品
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function saveMeta(data) {
  return request({
    url: "/meta/saveMeta",
    method: "post",
    data,
  });
}

/**
 * 获取产品列表
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchProductList(data) {
  return request({
    url: "/product/pageProduct",
    method: "post",
    data,
  });
}

/**
 * 获取sku列表
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchSkuList(data) {
  return request({
    url: "/sku/pageSku",
    method: "post",
    data,
  });
}

/**
 * 新增sku
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function addSku(data) {
  return request({
    url: "/sku/saveSku",
    method: "post",
    data,
  });
}

/**
 * 获取sku详情
 * @function
 * @param {number} id - 请求参数
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchSkuInfo(id) {
  return request({
    url: `/sku/getSkuInfo/${id}`,
    method: "get",
  });
}

/**
 * 更新sku
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function updateSku(data) {
  return request({
    url: `/sku/updateSku`,
    method: "post",
    data,
  });
}

/**
 * 获取标签列表
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchLabelList(data) {
  return request({
    url: "/common/pageLabel",
    method: "post",
    data,
  });
}

/**
 * 获取sku标签列表
 * @function
 * @param {number} id - 请求参数
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchSkuLabel(id) {
  return request({
    url: `/sku/listSkuLabel/${id}`,
    method: "get",
  });
}

/**
 * 获取sku 元产品列表
 * @function
 * @param {number} id - 请求参数
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchSkuMeta(id) {
  return request({
    url: `/sku/listSkuMeta/${id}`,
    method: "get",
  });
}

/**
 * 提交sku元产品列表
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function saveSkuMeta(data) {
  return request({
    url: "/sku/saveSkuMeta",
    method: "post",
    data,
  });
}

/**
 * 提交sku标签列表
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function saveSkuLabel(data) {
  return request({
    url: "/sku/saveSkuLabel",
    method: "post",
    data,
  });
}

/**
 * 新增产品
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function addProduct(data) {
  return request({
    url: "/product/saveProduct",
    method: "post",
    data,
  });
}

/**
 * 更新产品
 * @function
 * @param {Object} data - 请求参数对象
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function updateProduct(data) {
  return request({
    url: "/product/updateProduct",
    method: "post",
    data,
  });
}

/**
 * 获取产品信息
 * @function
 * @param {Object} params - 请求参数对象
 * @param {number} params.id
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchProductInfo(params) {
  return request({
    url: "/product/getProductInfo",
    method: "get",
    params,
  });
}

/**
 * 修改产品上架状态
 * @function
 * @param {number} id
 * @param {number} status
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function changeStatus(id, status) {
  return request({
    url: `/product/changeStatus/${id}/${status}`,
    method: "post",
  });
}

/**
 * 修改产品上架状态
 * @function
 * @param {Object} data
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function saveOrUpdateLabel(data) {
  return request({
    url: `/common/saveOrUpdateLabel`,
    method: "post",
    data,
  });
}

/**
 * 获取元产品详情
 * @function
 * @param {number} id - 请求参数
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchMetaInfo(id) {
  return request({
    url: `/meta/getInfo/${id}`,
    method: "post",
  });
}

/**
 * 获取产品文件列表
 * @function
 * @param {number} productId - 请求参数
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function fetchProductFile(productId) {
  return request({
    url: `/product/listProudctFile/${productId}`,
    method: "get",
  });
}

/**
 * 绑定产品文件
 * @function
 * @param {object} data - 请求参数
 * @returns {Promise<Object>} - 请求的响应结果
 */
export function bindFile(data) {
  return request({
    url: `/product/bindFile`,
    method: "post",
    data,
  });
}
